
//#define SIM900_DRIVER_DEBUG
configuration Sim900C
{
	provides interface Sim900DriverLayer;
	provides interface SplitControl as Sim900Control;
}
implementation
{
	components Sim900DriverLayerP;
	components Atm128FCUart0C as UART, CounterMicro32C;
	
	components MicaBusC;
	components new TimerMilliC() as Timer0, new TimerMilliC() as Timer1;
	components LedsC, NoLedsC;
	components MainC;
	components AssertC;
	components McuSleepC;
 	
 	UART.Counter -> CounterMicro32C;
  	UART.CTSInt -> MicaBusC.Int2_Interrupt;
  	UART.CTSPin -> MicaBusC.Int2;
  	
  	Sim900DriverLayerP.PowerLED -> MicaBusC.PW2;
  	Sim900DriverLayerP.UartControl -> UART;
  	Sim900DriverLayerP.UartStream -> UART;
  	Sim900DriverLayerP.PowerPin -> MicaBusC.PW3;
  	Sim900DriverLayerP.Timer -> Timer0;
  	Sim900DriverLayerP.Watchdog -> Timer1;
  	Sim900DriverLayerP.Leds -> LedsC;
  	//McuSleepC -> Sim900DriverLayerP.McuPowerOverride;
	
#ifdef SIM900_DRIVER_DEBUG
#warning ENABLED SIM900 DRIVER DEBUG
	components DiagMsgC;
	Sim900DriverLayerP.DiagMsg -> DiagMsgC;;
#endif
  	
  	MainC.SoftwareInit -> Sim900DriverLayerP.Init;
  	
  	Sim900DriverLayer = Sim900DriverLayerP;
  	Sim900Control = Sim900DriverLayerP;
  	
  	
}